package io.bdmc.core.msp2000.model;

import lombok.Data;

@Data
public class EDFA {
    public SlotData slotData;
    public String readAll;
    public int length;
    /**
     * 轮询协议版本
     */
    public String version;
    public String McuFwVer;
    public String FpgaFwVer;
    /**
     * 模块类型
     * 波数：Bit7 Bit6 :00：单波  01：窄带 10：C带  11：C+
     * 线路位置：Bit5 Bit4 :00：无标识  01：BA 10：LA  11：PA 
     * 光放类型： Bit3 Bit2 Bit1:000：无标识 001：FGA     010：MA 011：VGA     100：RFA 101：Hybrid   111：HFA
     */
    public String moduleType;

    public int wavelengthChannelNum;
    /**
     *  最小增益
     */
    public double minGain;
    /**
     * 最大增益
     */
    public double maxGain;
    /**
     * 最小功率
     */
    public double minPower;
    /**
     * 额定功率
     */
    public double ratedPower;
    public int pumpsNum;
    public int opticalPathLevel;
    public int voaNum;
    /**
     * 模块序列号
     */
    public String moduleSn;
    /**
     * 工作模式
     * Bit7 1：级联 0：每级独立
     * 单级模块工作模式/双级模块级联工作模式/双极模块独立工作第1级工作模式： Bit6 Bit5 Bit4 000：Disable 001：AGC 010：APC   011：ACC 100：总功率AGC 101：APPC 110：MP
     * 双极模块独立工作第2级工作模式： Bit2 Bit1 Bit0  000：Disable 001：AGC 010：APC   011：ACC 100：总功率AGC 101：APPC 110：MP
     * 
     */
    public String workModel;
    /**
     * 告警模式：
     *    Bit7	     Bit6	    Bit5	 	Bit3	    Bit2
     *  泵浦电流	泵浦功率	泵浦温度	机盒温度	加热器温度
     *  Bit7	      Bit3	    Bit2	    Bit1	    Bit0
     *  反射功率	无光关泵	输入功率	"输出功率   输出功率
     */
    public String alarmModel;
    public String singleMachineGain;
    public String twoStageIndependentOperationFrstStageGain;
    //双级独立工作第二级增益
    public String twoStageIndependentOperationSecondStageGain;
    public String gainSlope;
    /**
     * 单级APC功率设置值
     */
    public double singleStageAPCPowerSettings;
    public String twoStageIndependentOperationAPC;
    public String twoStageIndependentOperationSecondStageAPCPower;
    public String pump1SetCurrents;
    public String pump2SetCurrents;
    public String voa1Voltage;
    public String voa2Voltage;
    public String voa1Attenuation;
    public String voa2Attenuation;

    /**
     * 工作状态 单级/双极级联工作状态： 双极独立工作第一级状态： 双极独立工作第二级状态：
     * Bit7	Bit6	        Bit5	        Bit4	            Bit3	    Bit2	        Bit1	    Bit0
"1：无光关泵功能使能    1：眼保功能使能    1：PLimit功能使能 1：无光关泵状态 1：眼保状态   1：PLimit状态   1.关泵状态
    00: LOS N
    01:LOS A
    10 :LOS P
    11:LOS M"							
     */
    public String workState;
    /**
     * 告警状态
     * Bit7	                    Bit6	                Bit5	                Bit4	                    Bit3	                    Bit2	                Bit1	                Bit0
单级/双极第1级输入低告警	单级/双极第1级输入高告警	单级/双极第1级输出告警	单级/双极第1级输入过高告警	单级/双极第2级输入低告警	单级/双极第2级输入高告警	单级/双极第2级输出告警	双级第2级输入过高告警
        Bit7	        Bit6	            Bit5	                         Bit3	                Bit2	            Bit1	                    Bit0
MTH（case高温告警）	MTL（case低温告警）	MTX（case超高温关泵告警）		单级/双极第1级无光关泵告警	双极第2级无光关泵告警	CT（加热器温度告警）	RFL（输出端反射异常告警）
    Bit7	        Bit6	        Bit5	        Bit4	        Bit3	        Bit2	        Bit1	        Bit0
泵浦1电流告警	泵浦1功率告警	泵浦1温度告警	泵浦1制冷电流告警	泵浦2电流告警	泵浦2功率告警	泵浦2温度告警	泵浦2制冷电流告警
    */
    public String alarmState;
    /**
     * 泵浦1电流
     */
    public double pump1Currents;
    /**
     * 泵浦1功率
     */
    public double pump1Power;
    /**
     * 管芯温度
     */
    public double tubeCoreTemperature1;
    /**
     * 制冷电流
     */
    public double refrigerationCurrent1;

    public double pump2Currents;
    public double pump2Power;
    public double tubeCoreTemperature2;
    public double refrigerationCurrent2;
    //单级输入功率
    public double singleStageInputPower;
    //单级输出功率
    public double singleStageOutputPower;

    public double temper;
    public double temperMin;
    public double temperMax;
    
    //单级输入无光告警门限
    public double singleStageInputNoLightAlarmThreshold;
    //单级输入低门限
    public double SingleInputLowThreshold;
    //单级输入高门限
    public double SingleInputHighThreshold;
    //单级输出告警门限
    public double singleStageOutputAlarmThreshold;
    /** 告警状态4-6字节
     * Bit7	            Bit6	        Bit5	    	Bit3	        Bit2	        Bit1 
    泵浦3电流告警	泵浦3功率告警	泵浦3温度告警		泵浦4电流告警	泵浦4功率告警	泵浦4温度告警	
        Bit7	        Bit6	        Bit5	 	     Bit3	        Bit2	        Bit1	 
    泵浦5电流告警	泵浦5功率告警	泵浦5温度告警		泵浦6电流告警	泵浦6功率告警	泵浦6温度告警	
        告警6 预留
     */
    public String alarmState1;
 




}